home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / mmdf / mmdf-IIb.43 / libndir / opendir.c < prev    next >
Encoding:
C/C++ Source or Header  |  1986-02-01  |  567 b   |  35 lines

  1. /* Copyright (c) 1982 Regents of the University of California */
  2.  
  3. static char sccsid[] = "@(#)opendir.c 4.2 3/10/82";
  4.  
  5. #include <sys/types.h>
  6. #include <sys/stat.h>
  7. #include "dir.h"
  8.  
  9. extern    char *malloc();
  10.  
  11. /*
  12.  * open a directory.
  13.  */
  14. DIR *
  15. opendir(name)
  16.     char *name;
  17. {
  18.     register DIR *dirp;
  19.     struct stat sbuf;
  20.  
  21.     dirp = (DIR *)malloc(sizeof(DIR));
  22.     dirp->dd_fd = open(name, 0);
  23.     if (dirp->dd_fd == -1) {
  24.         free(dirp);
  25.         return NULL;
  26.     }
  27.     fstat(dirp->dd_fd, &sbuf);
  28.     if ((sbuf.st_mode & S_IFDIR) == 0) {
  29.         free(dirp);
  30.         return NULL;
  31.     }
  32.     dirp->dd_loc = 0;
  33.     return dirp;
  34. }
  35.